/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package model.dao;

import java.util.Calendar;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceException;
import javax.persistence.Query;
import model.dominio.AcaoSistema;
import model.dominio.PerfilUsuario;
import model.dominio.SessaoUsuario;

/**
 *
 * @author Daniel
 */
public class DaoPerfil extends DaoBase {

    public DaoPerfil() {
        super();
    }

    public PerfilUsuario salvar(PerfilUsuario perfil) {
        perfil.setData_ultima_alteracao(Calendar.getInstance());
        perfil.setUsuario(SessaoUsuario.getUsuarioLogado());
        return (PerfilUsuario) super.salvar(perfil);
    }

    /**
     * 
     * @return lista de perfis.
     */
    public List<PerfilUsuario> buscarPerfis() {
        EntityManager em = super.getEntityManager();

        try {
            String strSQL = "SELECT p FROM PerfilUsuario p ORDER BY p.nome";

            em.getTransaction().begin();

            Query query = em.createQuery(strSQL);

            return (List<PerfilUsuario>) query.getResultList();
        } catch (PersistenceException e) {
            return null;
        } finally {
            em.close();
        }
    }

    public List<AcaoSistema> buscarPermissoes() {
        EntityManager em = super.getEntityManager();

        try {
            String strSQL = "SELECT a FROM AcaoSistema a WHERE a.codigo>2 ORDER BY a.grupo, a.nome ";
            em.getTransaction().begin();

            Query query = em.createQuery(strSQL);

            return (List<AcaoSistema>) query.getResultList();
        } catch (PersistenceException e) {
            return null;
        } finally {
            em.close();
        }
    }
}
